package thread;

/**
 * 宏变量与宏替换。
 */
public class HongTest {

    //这是一个宏变量，他在一开始的时候就确定了值。
    final String a = "hello";
    //这个不是宏变量，因为它无法在编译器，确定它的值。
    final String b = a;
    //这个同样不是宏变量。
    final String c = getHello();

    private String getHello() {
        return "";
    }

    /**
     * 宏变量测试题。
     * @param args
     */
    public static void main(String[] args) {
        String hw = "hello world";

        String hello = "hello";
        final String finalWorld2 = "hello";//宏变量，值为hello
        final String finalWorld3 = hello;
        final String finalWorld4 = "he" + "llo";//宏变量，值为hello

        String hw1 = hello + " world";
        String hw2 = finalWorld2 + " world";//相当于String hw2 = "hello" + " world";也就相当于String hw2="hello world";
        String hw3 = finalWorld3 + " world";
        String hw4 = finalWorld4 + " world";//相当于String hw4 = "hello" + " world";也就相当于String hw2="hello world";

        System.out.println(hw == hw1); //false
        System.out.println(hw == hw2); //true
        System.out.println(hw == hw3); //false
        System.out.println(hw == hw4); //true
    }

}
